#pragma once
#include "GeoExport.h"
#include "Types.h"
#include <atomic>

namespace geo {
template <typename T> class UniqueIDGenerator {
public:
    static ID getNextID() { return counter_.fetch_add(1, std::memory_order_relaxed); }

private:
    inline static std::atomic<ID> counter_{0};
};

} // namespace geo
